package edu.gdpu.classloader;

import com.sun.org.apache.xpath.internal.WhitespaceStrippingElementMatcher;

import java.sql.Driver;
import java.util.Iterator;
import java.util.ServiceLoader;

/**
 * @author mazebin
 * @date 2021年 07月08日 16:48:15
 */
public class ClassLoaderTest26 {
    public static void main(String[] args) {
        //一旦加入下面这行，将使用ExtClassLoader去加载Driver,而ExtClassLoader不会去加载classpath，因此无法找到MySql的相关驱动。
    //    Thread.currentThread().setContextClassLoader(ClassLoaderTest26.class.getClassLoader().getParent());
        //ServiceLoader 服务提供者，加载实现的服务
        ServiceLoader<Driver> loader = ServiceLoader.load(Driver.class);
        Iterator<Driver> iterator = loader.iterator();
        while (iterator.hasNext()){
            Driver next = iterator.next();
            System.out.println("driver:"+next.getClass()+",loader:"+next.getClass().getClassLoader());

        }
        System.out.println("当前线程上下文加载器："+Thread.currentThread().getContextClassLoader());
        System.out.println("ServiceLoader的加载器："+loader.getClass().getClassLoader());

    }
}
